﻿using RockBus.ConfigurationService.Interfaces;
using RockBus.DataContracts;
using RockBus.ServiceModel;

namespace RockBus.ServiceBus
{
    public class ConfigurationServiceClient : ClientBaseEx<IConfigurationService>, IConfigurationService
    {
        public ConfigurationServiceClient(ClientBaseArgs args)
            : base(args)
        {
        }

        //public RockBusAck AddOrUpdate(AddOrUpdatePublishersRequest publishersRequest, AddOrUpdateSubscribersRequest subscribersRequest)
        //{
        //    return this.Contract.AddOrUpdate(publishersRequest, subscribersRequest);
        //}

        public SubscriberConfiguration GetSubscriberConfiguration()
        {
            return this.Contract.GetSubscriberConfiguration();
        }

        public RockBusAck AddOrUpdateSubscribers(AddOrUpdateSubscribersRequest request)
        {
            return this.Contract.AddOrUpdateSubscribers(request);
        }

        public RockBusAck RemoveSubscribers(RemoveSubscribersRequest request)
        {
            return this.Contract.RemoveSubscribers(request);
        }

        public RockBusAck RemoveSubscriptions(RemoveSubscriptionsRequest request)
        {
            return this.Contract.RemoveSubscriptions(request);
        }

        public PublisherConfiguration GetPublisherConfiguration()
        {
            return this.Contract.GetPublisherConfiguration();
        }

        public AddOrUpdatePublishersResponse AddOrUpdatePublishers(AddOrUpdatePublishersRequest request)
        {
            return this.Contract.AddOrUpdatePublishers(request);
        }

        public RockBusAck RemovePublishers(RemovePublishersRequest request)
        {
            return this.Contract.RemovePublishers(request);
        }

        public RockBusAck RemoveReceivePorts(RemoveReceivePortsRequest request)
        {
            return this.Contract.RemoveReceivePorts(request);
        }

        public RockBusAck RemoveAllSubscribers(RemoveAllSubscribersRequest request)
        {
            return this.Contract.RemoveAllSubscribers(request);
        }

        public RockBusAck RemoveAllPublishers(RemoveAllPublishersRequest request)
        {
            return this.Contract.RemoveAllPublishers(request);
        }
    }
}